/*
Copyright (C) 2010- Peter Bui and Aaron Dingler.
This software is distributed under the GNU General Public License.
See the file COPYING for details.
*/

#ifndef	__SMQ_MESSAGE_QUEUE_H__
#define __SMQ_MESSAGE_QUEUE_H__

#include <int_sizes.h>
#include <link.h>

extern int smq_message_queue_create(const char *root, const char *name);
extern int smq_message_queue_put(const char *root, const char *name, const INT64_T meta_size, const INT64_T body_size, struct link *client_link, int timeout);
extern int smq_message_queue_get(const char *root, const char *name, const char *mid, struct link *client_link, int timeout);
extern int smq_message_queue_list(const char *root, const char *name, struct link *client_link, int timeout);
extern int smq_message_queue_flush(const char *root, const char *name, struct link *client_link, int timeout);
extern int smq_message_queue_bind(const char *root, const char *name, const char *bind_name, const INT64_T bind_size, struct link *client_link, int timeout);
extern int smq_message_queue_unbind(const char *root, const char *name, const char *bind_name, struct link *client_link, int timeout);
extern int smq_message_queue_bindings(const char *root, const char *name, struct link *client_link, int timeout);

extern int smq_message_queue_count(const char *root, const char *name);
extern int smq_message_queue_exists(const char *root, const char *name);

#endif

/* 
vim: sw=4 sts=4 ts=8 ft=cpp
*/
